const express = require('express');
const cors = require('cors');
const path = require('path');
const https = require('https');

const app = express();
const PORT = process.env.PORT || 3000;

// 中间件
app.use(cors());
app.use(express.json());

// 静态文件服务 - 优化配置
app.use(express.static('.', {
    setHeaders: (res, filePath) => {
        if (filePath.endsWith('.css')) {
            res.setHeader('Content-Type', 'text/css; charset=utf-8');
        }
        if (filePath.endsWith('.js')) {
            res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
        }
    }
}));

// API代理路由
app.post('/api/news', async (req, res) => {
    try {
        const { newsUrl } = req.body;
        
        const postData = JSON.stringify({
            "chatId": "111",
            "stream": false,
            "detail": false,
            "messages": [
                {
                    "content": "请访问这个新闻网站，分析最新的新闻内容，并用简洁友好的语言为我播报最重要的新闻。请直接返回播报文本，不要返回技术格式或工具调用信息。",
                    "role": "user"
                }
            ],
            "variables": {
                "新闻网址": newsUrl || "https://news.sina.com.cn"
            }
        });

        const options = {
            hostname: 'swl.qutke.com',
            port: 443,
            path: '/api/v1/chat/completions',
            method: 'POST',
            headers: {
                'Authorization': 'Bearer towa-wLesT5MEHaq0JobiJ24OSXjCGF6PQsw9TlF4VKT3IEEa8PL0zSoOz',
                'Content-Type': 'application/json',
                'Content-Length': Buffer.byteLength(postData)
            }
        };

        const apiReq = https.request(options, (apiRes) => {
            let data = '';
            
            apiRes.on('data', (chunk) => {
                data += chunk;
            });
            
            apiRes.on('end', () => {
                try {
                    const jsonData = JSON.parse(data);
                    res.json(jsonData);
                } catch (parseError) {
                    console.error('JSON解析错误:', parseError);
                    res.status(500).json({ error: '响应格式错误' });
                }
            });
        });

        apiReq.on('error', (error) => {
            console.error('API调用错误:', error);
            res.status(500).json({ error: '获取新闻失败' });
        });

        apiReq.write(postData);
        apiReq.end();

    } catch (error) {
        console.error('服务器错误:', error);
        res.status(500).json({ error: '服务器内部错误' });
    }
});

// 首页路由
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, 'index.html'));
});

// 导出给部署平台使用
module.exports = app;

// 本地开发时启动服务器
if (require.main === module) {
    app.listen(PORT, () => {
        console.log(`🚀 AI新闻播报服务器运行在 http://localhost:${PORT}`);
    });
} 